home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacHack 2000
/
MacHack 2000.toast
/
pc
/
The Hacks
/
Softshoe
/
Lisa's Mac Parts
/
Views
/
Canvas
/
Canvas.h
< prev
next >
Wrap
Text File
|
2000-06-23
|
3KB
|
97 lines
// Canvas.h
#ifndef Canvas_h
#define Canvas_h
#ifndef PortMap_h
#include "PortMap.h"
#endif
#ifndef RegionObject_h
#include "RegionObject.h"
#endif
class GrafPortObject;
class WindowObject;
class Canvas: private PortMap
{
private:
GrafPortObject *port;
WindowObject *window;
RegionObject clip;
PortMap& Map() { return *this; }
static RegionObject& TemporaryRegion();
RegionObject& ClippedRegion( Rectangle ) const;
RegionObject& ClippedRegion( const RegionObject& ) const;
public:
Canvas();
explicit Canvas( GrafPortObject& );
explicit Canvas( WindowObject& );
explicit Canvas( const Canvas& source );
void operator=( WindowObject& );
void operator=( GrafPortObject& );
bool operator==( const Canvas& ) const;
bool operator!=( const Canvas& c ) const { return !operator==(c); }
void Clear() { port = 0; window = 0; }
bool HasPort() const { return port != 0; }
GrafPortObject& Port() const { Assert( HasPort() ); return *port; }
bool HasWindow() const { return window != 0; }
WindowObject& Window() const { Assert( HasWindow() ); return *window; }
const RegionObject& Clip() const { Assert( HasPort() ); return clip; }
bool Visible() const { return HasPort() && !clip.IsEmpty(); }
const PortMap& Map() const { return *this; }
PortMap::OffScreen;
PortMap::OnScreen;
PortMap::HorizontalToScreen;
PortMap::VerticalToScreen;
PortMap::HorizontalFromScreen;
PortMap::VerticalFromScreen;
PortMap::ToScreen;
PortMap::FromScreen;
void RestrictOnScreen( Rectangle r );
void RestrictOnScreen( const RegionObject& );
void RestrictOffScreen( Rectangle32 );
void RestrictToValid();
void RestrictToInvalid();
void Submap( Rectangle32 );
void SliceHorizontally( Range32 verticalRange );
void SliceVertically( Range32 horizontalRange );
PortMap::Scroll;
void ObstructOnScreen( Rectangle );
void ObstructOnScreen( const RegionObject& );
void ObstructOffScreen( Rectangle32 );
void GetValidRegion( RegionObject& ) const;
void GetInvalidRegion( RegionObject& ) const;
void Validate() const;
void ValidateOnScreen( Rectangle ) const;
void ValidateOnScreen( const RegionObject& ) const;
void ValidateOffScreen( Rectangle32 ) const;
void Invalidate() const;
void InvalidateOnScreen( Rectangle ) const;
void InvalidateOnScreen( const RegionObject& ) const;
void InvalidateOffScreen( Rectangle32 ) const;
};
void Copy( const Canvas& source, const Canvas& destination );
#endif